s1_generate_a_series_of_files(){
	for index in $(seq 1 100); do
		echo -n "$index" > "/tmp/new_file$index"
	done
}

s2_list_4_files_in_long_format_about_account_and_group(){
	ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow|sort
}

s3_find_items_related_to_given_username(){
	{ grep -h "^$1:" /etc/passwd /etc/shadow /etc/group 2>/dev/null || true; } | sort
}

s4_find_items_related_to_given_group_name(){
	
	{ grep -h "^$1:" /etc/group /etc/gshadow 2>/dev/null || true; } | sort	
}

s5_create_groups_for_given_group_names(){
	groupadd rnd
	groupadd itoperation
}

s6_create_users_and_set_their_group_as_required(){
	useradd -G rnd adam
	useradd -G rnd bob
	useradd -G itoperation calvin
	useradd -G itoperation david
	useradd -G rnd edward
}

s7_change_users_shell(){
	chsh -s /usr/bin/sh adam
	chsh -s /usr/bin/sh edward
}

s8_set_password_change_policy(){
	for user in adam bob calvin david edward; do
		chage -m 10 -M 60 -W 10 "$user"
	done
}

s9_set_password_for_five_users(){
	echo "adam:$1" | chpasswd
	echo "bob:$2" | chpasswd
	echo "calvin:$3" | chpasswd
	echo "david:$4" | chpasswd
	echo "edward:$5" | chpasswd
}

s10_lock_bobs_password(){
	passwd -l bob
}

s11_include_adam_into_wheel_group(){
	if ! grep -q '^wheel:' /etc/group; then
		groupadd wheel
	fi
	usermod -aG wheel adam
}

s12_change_files_permission(){
	s1_generate_a_series_of_files
	for i in $(seq 3 3 99); do
		chmod 640 "/tmp/new_file$i"
		chcon --reference=/etc/passwd "/tmp/new_file$i"
	done
}
